package TestExtends;

public class Test {
    public static void main(String[] args) {
        Zi z = new Zi();
        z.method();
        //构造方法不能重写但是可以重载,因为构造方法不能被继承
        /*Static可以用于修饰成员变量和成员方法，我们将其称之为静态变量和静态方法，直接通过类名来进行访问。
        static修饰的变量我们称之为静态变量，没有用static修饰的变量称之为实例变量，
        静态变量是随着类加载时被完成初始化的，它在内存中仅有一个，且JVM也只会为它分配一次内存，
        同时类所有的实例都共享静态变量，可以直接通过类名来访问它。
        但是实例变量则不同，它是伴随着实例的，每创建一个实例就会产生一个实例变量，它与该实例同生共死。
        static修饰的方法我们称之为静态方法，我们通过类名对其进行直接调用。由于他在类加载的时候就存在了，它不依赖于任何实例
        1、它只能调用static变量
        2、它只能调用static方法
        3、不能以任何形式引用this、super
        4、static变量在定义时必须要进行初始化，且初始化时间要早于非静态变量
        */

        String str1 = "ABC";
        String str2=new String("ABC");
        String str3;
        str3 = str1;
        int a = 10;
        int b = 10;
        System.out.println(a == b);
        System.out.println(str1 == str2);
        System.out.println(str1.equals(str2));
        System.out.println(str1 == str3);
        System.out.println(str2 == str3);
        System.out.println(str1.length());
    }
}
